package edu.zut.variable;


/**
 * 基本数据类型转换： 布尔不参与
 * 内存从小到大： byte--short---(char)int----long---float---double
 *               10                                      456.4578
 *  自动转换：将内存小的转换成内存大的
 *  强制转换：将内存大的转换成内存小的，可能出现数据丢失（精度丢失）
 */
public class VariableDemo3 {

    public static void main(String[] args) {
        byte a = 10;
        //自动转换成int   直接赋值
        int b;
        b = a;
        System.out.println("b = " + b);
        //转换成long
        b = 789465;
        long c = b;
        System.out.println("c = " + c);
        //c 转换成double
        double d = c;
        System.out.println("d = " + d);
        //强制转换   需要在被转换数据前添加目标数据类型
        d = 78456.456;
        float e = (float) d;
        System.out.println("e = " + e);
        //强制转换long   直接把小数点后数据去除
        long m =(long) d;
        System.out.println("m = " + m);
        //强制转换int
        int n = (int) d;
        System.out.println("n =" + n);
        //char  ascii表  整数范围byte （0-127）
        char i = 'a';
        //char类型可以直接用数字赋值
        i = 100;
        System.out.println("i = " + i);  //d
        //int类型的数据转char类型需要强制转换
        int j = 101;
        i = (char) j;
        System.out.println("i = " + i); //e
        //char 转 int  自动转
        char x = 'z';
        int y = x;
        System.out.println("y = " + y);
        //强制转可能会数据溢出
        byte z =(byte) 1234564;
        System.out.println("z = " + z);
    }
}